package com.ssy.lingxi.member.merchant.model.vo.maintenance.request;

import com.ssy.lingxi.member.merchant.api.handler.annotation.PhoneAnno;

import javax.validation.Valid;
import javax.validation.constraints.*;
import java.io.Serializable;

/**
 * 会员门店新增请求参数VO
 * @author wyx
 * @version 2.0.0
 * @date 2022-02-11
 */
public class MemberStoreAddVO implements Serializable {
    private static final long serialVersionUID = 3818782334924584516L;
    /**
     * 门店代码
     */
    @NotEmpty(message = "门店代码不能为空")
    @Size(max = 12, message = "门店代码最长12个字符")
    private String code;

    /**
     * 门店名称
     */
    @NotEmpty(message = "门店名称不能为空")
    @Size(max = 20, message = "门店名称最长20个字符")
    private String name;

    /**
     * 门店logo
     */
    private String logo;

    /**
     * 省编码
     */
    @NotBlank(message = "省编号不能为空")
    private String provinceCode;

    /**
     * 省名称
     */
    @NotBlank(message = "省名称不能为空")
    private String provinceName;

    /**
     * 市编码
     */
    @NotBlank(message = "市编码不能为空")
    private String cityCode;

    /**
     * 市名称
     */
    @NotBlank(message = "市名称不能为空")
    private String cityName;

    /**
     * 区编码
     */
    private String districtCode;

    /**
     * 区名称
     */
    private String districtName;

    /**
     * 街道编码
     */
    private String streetCode;

    /**
     * 街道名称
     */
    private String streetName;

    /**
     * 详细地址
     */
    @NotEmpty(message = "详细地址不能为空")
    @Size(max = 60, message = "详细地址最长60个字符")
    private String address;

    /**
     * 邮政编码
     */
    @Size(max = 12, message = "邮政编码最长12个字符")
    private String postalCode;

    /**
     * 联系人姓名
     */
    @NotEmpty(message = "联系人姓名不能为空")
    @Size(max = 16, message = "联系人姓名最长16个字符")
    private String contactName;

    /**
     * 国家编码（手机号码前缀）
     */
    @NotBlank(message = "国家代码不能为空")
    private String countryCode;

    /**
     * 手机号码
     */
    @NotEmpty(message = "手机号码不能为空")
    @PhoneAnno(message = "手机号码错误")
    private String phone;

    /**
     * 邮箱
     */
    @Email(message = "邮箱格式不正确")
    private String email;

    /**
     * 职位
     */
    @NotEmpty(message = "职位不能为空")
    @Size(max = 20, message = "职位最长20个字符")
    private String position;

    /**
     * 所属组积机构ID
     */
    @NotNull(message = "所属组积机构ID不能为空")
    private Long orgId;

    /**
     * 发货(自提)地址
     */
    @Valid
    MemberDeliverAddressVO deliverAddress;

    /**
     * 收货地址
     */
    @Valid
    MemberReceiveAddressVO receiveAddress;

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getLogo() {
        return logo;
    }

    public void setLogo(String logo) {
        this.logo = logo;
    }

    public String getProvinceCode() {
        return provinceCode;
    }

    public void setProvinceCode(String provinceCode) {
        this.provinceCode = provinceCode;
    }

    public String getProvinceName() {
        return provinceName;
    }

    public void setProvinceName(String provinceName) {
        this.provinceName = provinceName;
    }

    public String getCityCode() {
        return cityCode;
    }

    public void setCityCode(String cityCode) {
        this.cityCode = cityCode;
    }

    public String getCityName() {
        return cityName;
    }

    public void setCityName(String cityName) {
        this.cityName = cityName;
    }

    public String getDistrictCode() {
        return districtCode;
    }

    public void setDistrictCode(String districtCode) {
        this.districtCode = districtCode;
    }

    public String getDistrictName() {
        return districtName;
    }

    public void setDistrictName(String districtName) {
        this.districtName = districtName;
    }

    public String getStreetCode() {
        return streetCode;
    }

    public void setStreetCode(String streetCode) {
        this.streetCode = streetCode;
    }

    public String getStreetName() {
        return streetName;
    }

    public void setStreetName(String streetName) {
        this.streetName = streetName;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getPostalCode() {
        return postalCode;
    }

    public void setPostalCode(String postalCode) {
        this.postalCode = postalCode;
    }

    public String getContactName() {
        return contactName;
    }

    public void setContactName(String contactName) {
        this.contactName = contactName;
    }

    public String getCountryCode() {
        return countryCode;
    }

    public void setCountryCode(String countryCode) {
        this.countryCode = countryCode;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPosition() {
        return position;
    }

    public void setPosition(String position) {
        this.position = position;
    }

    public Long getOrgId() {
        return orgId;
    }

    public void setOrgId(Long orgId) {
        this.orgId = orgId;
    }

    public MemberDeliverAddressVO getDeliverAddress() {
        return deliverAddress;
    }

    public void setDeliverAddress(MemberDeliverAddressVO deliverAddress) {
        this.deliverAddress = deliverAddress;
    }

    public MemberReceiveAddressVO getReceiveAddress() {
        return receiveAddress;
    }

    public void setReceiveAddress(MemberReceiveAddressVO receiveAddress) {
        this.receiveAddress = receiveAddress;
    }
}
